import java.util.Scanner;

//题目：某个公司采用公用电话传递数据，数据是四位的整数，在传递过程中是加密的，
// 加密规则如下：每位数字都加上5,然后用和除以10的余数代替该数字，再将第一位和第四位交换，
// 第二位和第三位交换。输入一个未加密数据，进行加密，并解密。
public class Test42 {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.println("请输入需要加密的数据：");
        int code = console.nextInt();
        code = changeCode(code);
        System.out.println("加密后的数据为：" + code);
        code = getCode(code);
        System.out.println("解密后的数据为：" + code);
    }

    public static int changeCode(int code) {
        int[] arr = new int[4];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (code % 10 + 5) % 10;
            code /= 10;
        }
        code = 0;
        for (int i = arr.length - 1; i >= 0; i--) {
            code += arr[i] * Math.pow(10, 3 - i);
        }
        return code;
    }

    public static int getCode(int code) {
        int[] arr = new int[4];
        int k = 0;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = code % 10;
            code /= 10;
            for (int j = 0; j < 10; j++) {
                if ((j + 5) % 10 == arr[i]) {
                    k = j;
                }
            }
            arr[i] = k;
        }
        code = 0;
        for (int i = arr.length - 1; i >= 0; i--) {
            code += arr[i] * Math.pow(10, 3 - i);
        }
        return code;
    }
}
